<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>石龙地图</title>
</head>
<body>
    <script src="./data.js"></script>
    <script>

        // SnodeID = [1553742,1530432,1511901,58784436,58784413,58784433];
        // EnodeID = [1511901,1553742,58784436,58784413,58784433,1530449];

        var SIndex = [],
            EIndex = [],
            commonIndex=[],
            sum = [],
            end = [];

        // 初始化 查找起点、终点的索引
        init();

        // 测试
        // test();

        // 连接
        SIndex.forEach((item,index)=>{
            connection(item)
            return;
        })

        // 转换
        // change(sum);

        // commonIndex.forEach((item,index)=>{
        //     connection(item)
        //     return;
        // })

        // console.log("起点索引",SIndex);
        // console.log("终点索引",EIndex);

        console.log("sum",sum)
        // console.log('test',end)

        // console.log(commonIndex);


        /******** 功能 ********/ 

        // 初始化
        function init(){
            // 查找起点
            SnodeID.forEach((Snode,index)=>{
                let condition = EnodeID.some((item,index)=>{
                    return Snode==item
                })
                if(!condition){
                    SIndex.push(index);
                }
            })
            // 查找终点
            EnodeID.forEach((Enode,index)=>{
                let condition=SnodeID.some((item,index)=>{
                    return Enode==item;
                })
                if(!condition){
                    EIndex.push(index);                
                }
            })
            // 查找起点和终点的相同点
            SIndex.forEach((sItem,index)=>{
                var condition=EIndex.some((eItem,index)=>{
                    return sItem==eItem;
                })
                if(condition){
                    commonIndex.push(sItem)
                }
            })
        }

        // 连接
        function connection(index){
            for(let eIndex=index;;){
                if(sum.length==0){
                    // 起点
                    sum.push(index)
                }else{
                    // 连接点
                    sum.push(eIndex)
                    eIndex=SnodeID.indexOf(EnodeID[eIndex]);
                    if(eIndex==-1){
                        return;
                    }
                }
            }
        }

        // 测试
        function test(){
            let testArr=[];
            SIndex.forEach((item)=>{
                testArr.push(SnodeID.indexOf(EnodeID[item]))
            })
            console.log(testArr)
        }

        // 转换
        function change(arr){
            arr.forEach((item,index)=>{
                end.push(EnodeID[item])
            })
            end.splice(0,1,SnodeID[arr[0]])
        }
        
    </script>
</body>
</html>